package cn.edu.pzhu.javaweb.listener;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class VistorListener implements HttpSessionListener {

    private int count = 0;

    public VistorListener() {}

    public void sessionCreated(HttpSessionEvent se) {
        synchronized (VistorListener.class) {// VisitorListener.class 加锁，确保线程安全
            Object object = se.getSession().getServletContext().getAttribute("visitor");//获取当前访问量
            if (object == null) {//如果是第一次访问，直接置为1
                count = 1;
            }else {//如果不是第一次访问， VisitorListener.class 加锁，将当前访问量加1
                count = (Integer)object + 1;
            }
            System.out.println("有人与服务器建立了连接");
            System.out.println("访问量为："+count);
            se.getSession().getServletContext().setAttribute("visitor", count);
        }
    }

    public void sessionDestroyed(HttpSessionEvent se) {}
}
